Welcome to pandas!

8.15 高级表格横向拼接-2(按指定列关联)

如果在两表拼接时,不是以行索引为连接,而是指定的列为连接,则有以下几种方法:

1、 两表同名单列关联

2、 两表同名多列关联

3、 两表单列不同名关联

4、 两表多列不同名关联


import pandas as pd

df_l=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","分数表" )

df_r=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","信息表" )

print (df_l)

print (df_r)

df=pd.merge(

left =df_l,

right =df_r,

on=[ "姓名","部门" ] #两表同名多列关联,即关键字为两列合并多条件匹配

)

print (df)

返回:

工号 姓名 部门 分数
0 NED01 张三 销售部 99
1 NED03 王麻子 IT部 97
2 NED05 小华 销售部 96

编号 姓名 部门 籍贯
0 NED01 张三 销售部 山东
1 NED02 李四 财务部 四川
2 NED03 王麻子 IT部 湖南
3 NED04 小曾 销售部 上海
4 NED05 小华 销售部 北京

工号 姓名 部门 分数 编号 籍贯
0 NED01 张三 销售部 99 NED01 山东
1 NED03 王麻子 IT部 97 NED03 湖南
2 NED05 小华 销售部 96 NED05 北京

import pandas as pd

df_l=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","分数表" )

df_r=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","信息表" )

print (df_l)

print (df_r)

df=pd.merge(

left =df_l,

right =df_r,

left_on =[ "工号","姓名","部门" ],

right_on =[ "编号","姓名","部门" ], #两表多列不同名关联

)

print (df)

返回:

工号 姓名 部门 分数
0 NED01 张三 销售部 99
1 NED03 王麻子 IT部 97
2 NED05 小华 销售部 96

编号 姓名 部门 籍贯
0 NED01 张三 销售部 山东
1 NED02 李四 财务部 四川
2 NED03 王麻子 IT部 湖南
3 NED04 小曾 销售部 上海
4 NED05 小华 销售部 北京

工号 姓名 部门 分数 编号 籍贯
0 NED01 张三 销售部 99 NED01 山东
1 NED03 王麻子 IT部 97 NED03 湖南
2 NED05 小华 销售部 96 NED05 北京